package com.wen.edu.api;

import com.wen.commonutils.ResultEntity;
import com.wen.edu.api.impl.VodFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @Author：Win
 * @Date: 2021/6/12 10:29
 * @Description: 调用service-vod模块下的删除视频服务,
 * 此处的方法名和参数必须和具体实现业务逻辑的地方一致
 * {@FeignClient}注解---用于指定从哪个服务中调用功能 ，名称与被调用的服务名保持一致
 * {@Component}注解---防止在其他位置注入CodClient时idea报错
 * {@PathVariable}注解一定要指定参数名称，否则出错
 * {@RequestMapping}注解用于对被调用的微服务进行完整地址映射
 */
@FeignClient(name = "service-vod", fallback = VodFallBack.class)
@Component
public interface VodApi {
    /**
     * 删除单个视频
     *
     * @param id 视频id
     * @return 成功或失败
     */
    @DeleteMapping("/edu/vod/video/delete/{id}")
    ResultEntity deleteSingleAlyVideo(@PathVariable("id") String id);

    /**
     * 批量删除视频
     *
     * @param ids 视频id集合
     * @return 成功或失败
     */
    @DeleteMapping("/edu/vod/video/delete/batch")
    ResultEntity deleteMultiAlyVideo(@RequestParam("ids") List<String> ids);
}
